import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'

// https://vitejs.dev/config/
export default defineConfig({
  server: {
    host: '0.0.0.0', // 监听所有网络接口
    port: 5173,      // 明确指定端口
    strictPort: true, // 如果端口被占用则退出
    hmr: {
      clientPort: 5173, // 重要: 确保HMR websocket端口正确
    },
  },
  build: {
    sourcemap: true, // 生成完整的sourcemap文件
  },
  plugins: [
    vue({
      script: {
        // 支持新的v-model语法
        defineModel: true,
        // 支持props解构
        propsDestructure: true,
      },
    }),
    vueJsx(),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
    },
  },
})